Only calculate clipping regions for viewable windows
authorAlexander Larsson <alexl@redhat.com>
Sat, 18 Jul 2009 18:52:30 +0000 (20:52 +0200)
committerAlexander Larsson <alexl@redhat.com>
Sat, 18 Jul 2009 21:15:51 +0000 (23:15 +0200)
gdk/gdkwindow.c

index 2ef379a636177e68fddefae4921c774e234deb3c..e62311e519fbe7791bf2c1fb0c2a3516c9bd7272 100644 (file)
@@ -774,7 +774,7 @@ recompute_visible_regions_internal (GdkWindowObject *private,
    * siblings in parents above window
    */
   clip_region_changed = FALSE;
-  if (recalculate_clip)
+  if (recalculate_clip && private->viewable)
     {
       /* Calculate visible region (sans children) in parent window coords */
       r.x = private->x;
@@ -862,7 +862,9 @@ recompute_visible_regions_internal (GdkWindowObject *private,
           * there is no way the child clip region could change (its has not e.g. moved)
           * Except if recalculate_children is set to force child updates
           */
-         recompute_visible_regions_internal (child, recalculate_clip && (clip_region_changed || recalculate_children), FALSE, FALSE);
+         recompute_visible_regions_internal (child,
+                                             recalculate_clip && (clip_region_changed || recalculate_children),
+                                             FALSE, FALSE);
        }
     }